... and API to set and unset it.
It is set when gtk_widget_queue_resize() is called.
It is unset when gtk_widget_get_preferred_width/height() is called.
So far it is not used.
gint nat_baseline = -1;
gboolean found_in_cache;
+ gtk_widget_ensure_resize (widget);
+
if (gtk_widget_get_request_mode (widget) == GTK_SIZE_REQUEST_CONSTANT_SIZE)
for_size = -1;
{
GtkWidgetPrivate *priv = widget->priv;
+ priv->resize_needed = TRUE;
priv->alloc_needed = TRUE;
+}
+
+void
+gtk_widget_ensure_resize (GtkWidget *widget)
+{
+ GtkWidgetPrivate *priv = widget->priv;
+
+ if (!priv->resize_needed)
+ return;
+
+ priv->resize_needed = FALSE;
_gtk_size_request_cache_clear (&priv->requests);
}
gboolean shadowed);
gboolean _gtk_widget_get_alloc_needed (GtkWidget *widget);
void gtk_widget_queue_resize_on_widget (GtkWidget *widget);
+void gtk_widget_ensure_resize (GtkWidget *widget);
void _gtk_widget_draw (GtkWidget *widget,
cairo_t *cr);
void _gtk_widget_scale_changed (GtkWidget *widget);